[package]
name = "storage"
version = "0.2.0"
authors = [
    "Andrey Vasnetsov <vasnetsov93@gmail.com>",
    "Qdrant Team <info@qdrant.tech>",
]
license = "Apache-2.0"
edition = "2021"

[features]
tracing = ["dep:tracing", "api/tracing", "collection/tracing", "segment/tracing"]

[dev-dependencies]
tempfile = "3.8.0"
proptest = "1.2.0"
env_logger = "0.10.0"

[dependencies]
num_cpus = "1.16"
thiserror = "1.0"
rand = "0.8.5"
wal = { git = "https://github.com/qdrant/wal.git", rev = "a32f6a38acf7ffd761df83b0790eaefeb107cd60" }
tokio = { version = "~1.32", features = ["rt-multi-thread"] }
serde = { version = "~1.0", features = ["derive"] }
serde_json = "~1.0"
schemars = { version = "0.8.15", features = ["uuid1", "preserve_order", "chrono"] }
itertools = "0.11"
async-trait = "0.1.73"
log = "0.4"
tonic = { version = "0.9.2", features = ["gzip", "tls"] }
http = "0.2"
parking_lot = { version = "0.12.1", features = ["deadlock_detection", "serde"] }
tar = "0.4.40"
chrono = { version = "~0.4", features = ["serde"] }
validator = { version = "0.16", features = ["derive"] }

# Consensus related
atomicwrites = { version = "0.4.1" }
raft = { version = "0.7.0", features = ["prost-codec"], default-features = false }
prost = { version = "0.11.9" } # version of prost used by raft
protobuf = "2.28.0" # version of protobuf used by raft
serde_cbor = { version = "0.11.2" }

io = { path = "../common/io" }
memory = { path = "../common/memory" }
segment = { path = "../segment" }
collection = { path = "../collection" }
api = { path = "../api" }
futures = "0.3.28"
anyhow = "1.0.75"
uuid = "1.4.1"
url = "2.4.1"
reqwest = { version = "0.11", default-features = false, features = ["stream", "rustls-tls"] }
tempfile = "3.8.0"

tracing = { version = "0.1", features = ["async-await"], optional = true }
